package com.supermarket.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Mapper
public interface DashboardMapper {
    /**
     * 获取今日订单总数
     */
    Integer getTodayOrderCount(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);

    /**
     * 获取今日销售额
     */
    BigDecimal getTodaySales(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);

    /**
     * 获取总用户数
     */
    Integer getTotalUserCount();

    /**
     * 获取总商品数
     */
    Integer getTotalProductCount();

    /**
     * 获取近7天每日销售额
     */
    List<Map<String, Object>> getLast7DaysSales(@Param("startTime") LocalDateTime startTime);

    /**
     * 获取各分类商品数量统计
     */
    List<Map<String, Object>> getCategoryProductCount();

    /**
     * 获取热销商品TOP10
     */
    List<Map<String, Object>> getTopSellingProducts(@Param("startTime") LocalDateTime startTime);
} 